namespace devtm.Aop.Emit
{
    using System;
    

    [Serializable]
    public class EmitFieldReferenceExpression : EmitExpression
    {
        private string fieldName;
        private EmitExpression targetObject;


        public EmitFieldReferenceExpression()
        {
        }

        public EmitFieldReferenceExpression(EmitExpression targetObject, string fieldName)
        {
            this.TargetObject = targetObject;
            this.FieldName = fieldName;
        }

        public string FieldName
        {
            get
            {
                if (this.fieldName != null)
                {
                    return this.fieldName;
                }
                return string.Empty;
            }
            set
            {
                this.fieldName = value;
            }
        }

        public EmitExpression TargetObject
        {
            get
            {
                return this.targetObject;
            }
            set
            {
                this.targetObject = value;
            }
        }



        public override System.Collections.Generic.IEnumerable<Mono.Cecil.Cil.Instruction> Compile()
        {
            throw new NotImplementedException();
        }
    }
}
